#pragma once

#include <iostream>
#include <map>
#include "Define.h"

using namespace std;

namespace Next
{
	namespace GameServer
	{
		namespace Skill
		{
			using namespace Defines;

			typedef struct SkillFile 
			{
				signed int		sDamage;
				char			szName[MAX_SKILL_NAME];
				unsigned char	uRequireLevel;
				unsigned char	uMana;
				unsigned char	uDistance;
				signed int		sRequireEnergy;
				unsigned char	sRequireClass[MaxPlayerClass];
			} stSkillFile;

			class SkillData
			{
			private:
				map<int, stSkillFile*> mapSkills;

				signed int GetSkillDamage(int skillnumber);
				void SetSkill(char* name, int skill, int damage, int requireLevel, int mana, int distance, unsigned char ReqClass[MaxPlayerClass] );

			public:
				SkillData(void);
				~SkillData(void);

				void Init();
				void LoadSkillList(char* filename = "..\\data\\serverconfig\\skill.nxt");

			};
		}
	}
}
